home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / FADERS.ZIP / FADE8088.ASM < prev    next >
Encoding:
Assembly Source File  |  1995-08-23  |  1.9 KB  |  102 lines

  1. Code   segment para public 'Code'
  2. assume  cs:Code, ds:Code, es:Code
  3.  
  4. pal_buf db 768 dup(0)   ;Tijdelijke buffer      
  5. include palette.inc     ;Palette waarden
  6. include screen.inc      ;Screentje
  7. include p_uncrnh.inc    ;uncrunch
  8.  
  9. ProgStart:
  10.         call write_palette  ;Total blackness 4 fade-in
  11.         mov ax,seg Screen
  12.         mov ds,ax
  13.         mov si,offset Screen
  14.         mov ax,0b800h
  15.         mov es,ax
  16.         mov di,0
  17.         mov cx,1322
  18.         call uncrunch
  19.  
  20.  
  21.         mov bp,31       ;Fade-in-loop
  22. fade_in_loop:   call fade_in
  23.         call write_palette
  24.         dec bp
  25.         jnz fade_in_loop
  26.         
  27.         mov ax,0
  28.         int 16h
  29.  
  30.         mov bp,31       ;Fade-out-loop
  31. fade_out_loop:  call fade_out
  32.         call write_palette
  33.         dec bp
  34.         jnz fade_out_loop
  35.                 
  36.         mov ax,3        ;Text-Mode
  37.         int 10h 
  38.         mov ax,4c00h    ;Exit-To-Dos
  39.         int 21h
  40.  
  41. fade_in        proc
  42.            mov bx,0
  43. @@fade1:       mov al,[palette+bx]
  44.            mov dl,[pal_buf+bx]
  45.            sub al,dl
  46.            cmp al,0
  47.            je no_inc
  48.            cmp al,1
  49.            je @@f1
  50.            inc [pal_buf+bx]
  51. @@f1:
  52.            inc [pal_buf+bx]
  53. no_inc:        inc bx
  54.            cmp bx,768
  55.            jne @@fade1
  56.            ret
  57. endp           fade_in
  58.  
  59. fade_out       proc
  60.            mov bx,0
  61. @@fade2:       cmp [pal_buf+bx],0
  62.            je no_dec
  63.            cmp [pal_buf+bx],1
  64.            je @@f2
  65.            dec [pal_buf+bx]
  66. @@f2:          dec [pal_buf+bx]        
  67. no_dec:        inc bx
  68.            cmp bx,768
  69.            jne @@fade2
  70.            ret
  71. endp           fade_out
  72.  
  73. write_palette proc   ;Write Palette to Video-Port
  74.         mov dx, 03DAh              
  75.     v1:
  76.         in    al, dx
  77.         test   al,08h
  78.         jnz    v1
  79.     v2:
  80.         in     al, dx
  81.         test   al,08h
  82.         jz     v2
  83.  
  84.         mov dx,3c8h
  85.         mov ax,seg pal_buf
  86.         mov ds,ax
  87.         mov si,offset pal_buf
  88.         mov cx,768
  89.         xor al,al
  90.         out dx,al
  91.         inc dx        
  92. @l1:        lodsb      ;Especially for the owners of 8088/8086
  93.         out dx,al
  94.         loop @l1
  95.         ret
  96. endp            write_palette
  97. Code   ends
  98. End     ProgStart
  99.  
  100.  
  101.  
  102.